package com.cysyz.mylib.jbpm;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.List;

import org.jbpm.api.ProcessDefinition;
import org.jbpm.api.task.Task;

import com.cysyz.mylib.jbpm.impl.JBPMCommonServiceImpl.ImageInfo;

public interface IJBPMCommonService {

	public abstract void setSimpleOperator(
			IJBPMProcessEnginSimpleOperator simpleOperator);

	public abstract IJBPMProcessEnginSimpleOperator getSimpleOperator();

	/**
	 * 查询所有最新版本的流程定义
	 * 
	 * @return
	 */
	public abstract List<ProcessDefinition> findAllLastVersionProcessDefinition();

	/**
	 * 利用key查询此key对应的最新版本的流程定义
	 * 
	 * @return
	 */
	public abstract ProcessDefinition findLastVersionProcessDefinitionByKey(
			String key);

	/**
	 * 部署流程定义（部署ZIP文件格式的流程定义）
	 * 
	 * @param zipFile
	 *            文件
	 * */
	public abstract void deployNewProcessDefinitionByZipFile(File zipFile)
			throws FileNotFoundException;

	/**
	 * 使用流程定义的key删除所有版本的流程定义
	 * 
	 * @param key
	 */
	public abstract void deleteProcessDefinitionByKey(String key);

	/**
	 * 打印流程定义的信息
	 * 
	 * @param pdList
	 *            流程定义的集合
	 * */
	public abstract void pintProcessDefinitionInfo(
			List<ProcessDefinition> pdList);

	/**
	 * 打印活动的信息
	 * 
	 * @param list
	 *            活动的集合
	 * */
	public abstract void printTaskInfo(List<Task> list);

	/**
	 * 取得图片的信息
	 * 
	 * @param key
	 *            流程定义的key
	 * */
	public abstract ImageInfo getPic(String key);

}